<?php

namespace App\Models;

/**
 * Class Blog
 * @property integer id
 * @property string title 标题
 * @property string icon 图标
 * @property string cover 封面
 * @property string summary 简介
 * @property boolean status 状态 是否显示 true：显示  false：不显示
 * @property boolean index_show 是否在首页显示 是否显示 true：显示  false：不显示
 * @property string index_icon 首页显示icon
 * @property integer min_price 最小价格
 * @property integer max_price 最大价格
 * @property integer sort 排序
 * @property integer parent_id 自关联ID
 * @property integer server_unit 服务单位：1：元/小时  2:元/次
 * @property integer channel 服务方式：1：线上   2：线下
 * @property string default_intro 服务默认介绍
 */
class Skill extends ApplicationModel
{
    protected $fillable = [
        'title',
        'icon',
        'status',
        'sort',
        'parent_id',
        'cover',
        'min_price',
        'max_price',
        'summary',
        'index_show',
        'index_icon',
        'server_unit',
        'channel',
        'default_intro',
    ];

    public function scopeGetParent($query)
    {
        return $query->where('parent_id', 0);
    }

    public function scopeGetItems($query)
    {
        return $query->where('parent_id', '!=', 0);
    }

    public function scopeRelease($query)
    {
        return $query->where('status', true);
    }

    public function items()
    {
        return $this->hasMany(Skill::class, 'parent_id', 'id');
    }

    public function parent()
    {
        return $this->belongsTo(Skill::class, 'parent_id', 'id');
    }

    public function products()
    {
        return $this->hasMany(Product::class);
    }

    public function banner()
    {
        return $this->hasOne(Banner::class, 'type_id')->where('type', $this->model_name());
    }

    public function skillTags(){
        return $this->hasMany(SkillTag::class);
    }

    public function skillConditions()
    {
        return $this->hasMany(SkillCondition::class);
    }

    public static function default_show_skill_ids()
    {
        $skill_ids = array();
        $skills = Skill::release()->where('index_show', true)->get();
        foreach ($skills as $skill) {
            $skill_ids[] = $skill->id;
        }
        return $skill_ids;
    }

    public function server_unit_str()
    {
        switch ($this->server_unit) {
            case 1:
                return '元/小时';
            case 2:
                return '元/次';
        }
    }

    public function intro()
    {
        return $this->default_intro;
    }
}
